/*
 * TMap Designer - A Thematic Map design software
 * Copyright (C) 2006 World Health Organization
 * http://www.who.int
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
package who.tmap.bo.impl;

import java.awt.Color;
import java.awt.geom.Point2D;
import java.util.List;

import who.tmap.bo.Annotations;
import who.tmap.bo.TextStyle;
import who.tmap.toolkit.shape.MapShape;

public class AnnotationsImpl extends BaseBizObjectImpl implements Annotations {

	private boolean titleVisible;
	private boolean titleBackgroundTransparent;
	private String title;
	private TextStyle titleStyle;
	private Point2D titlePt;
	private Color titleColor;
	private boolean titleEditedByUser;
	
	private boolean legendVisible;
	private TextStyle legendStyle;
	private boolean legendBackgroundTransparent;
	private Point2D legendPt;
	private String legendText;
	private Color legendColor;
	private List<String> colorPatternLegend;
	private boolean colorPatternRoundRangesBoundaries;
	private boolean proportionalSymbolsRoundValues;
	
	private boolean labelsVisible;
	private double labelsVisibleCondition;
	private boolean labelsVisibleIfDataExists;
	private TextStyle labelsStyle;
	private Color labelsColor;
	private String labelColumnName;
	
	private Color backgroundColor =Color.WHITE;
	private Color baseMapColor =Color.BLACK;
	
	private double baseMapLineWidth =1.0;
	
	private List<MapShape> graphics;
	
	AnnotationsImpl() {
		super();
	}
	
	public TextStyle getLabelsStyle() {
		return labelsStyle;
	}
	
	public void setLabelsStyle(TextStyle labelsStyle) {
		this.labelsStyle = labelsStyle;
	}
	
	public boolean isLabelsVisible() {
		return labelsVisible;
	}
	
	public void setLabelsVisible(boolean labelsVisible) {
		this.labelsVisible = labelsVisible;
	}
	
	public TextStyle getLegendStyle() {
		return legendStyle;
	}
	
	public void setLegendStyle(TextStyle legendStyle) {
		this.legendStyle = legendStyle;
	}
	
	public boolean isLegendVisible() {
		return legendVisible;
	}
	
	public void setLegendVisible(boolean legendVisible) {
		this.legendVisible = legendVisible;
	}	
	
	public boolean isLegendBackgroundTransparent() {
		return legendBackgroundTransparent;
	}

	public void setLegendBackgroundTransparent(boolean legendBackgroundTransparent) {
		this.legendBackgroundTransparent = legendBackgroundTransparent;
	}

	public double getLabelsVisibleCondition() {
		return labelsVisibleCondition;
	}
	
	public void setLabelsVisibleCondition(double labelsVisibleCondition) {
		this.labelsVisibleCondition = labelsVisibleCondition;
	}
	
	public String getTitle() {
		return title;
	}
	
	public void setTitle(String title) {
		this.title = title;
	}
	
	public TextStyle getTitleStyle() {
		return titleStyle;
	}
	
	public void setTitleStyle(TextStyle titleStyle) {
		this.titleStyle = titleStyle;
	}
	
	public boolean isTitleVisible() {
		return titleVisible;
	}
	
	public void setTitleVisible(boolean titleVisible) {
		this.titleVisible = titleVisible;
	}	
	
	public boolean isTitleBackgroundTransparent() {
		return titleBackgroundTransparent;
	}

	public void setTitleBackgroundTransparent(boolean titleBackgroundTransparent) {
		this.titleBackgroundTransparent = titleBackgroundTransparent;
	}	

	public boolean isTitleEditedByUser() {
		return titleEditedByUser;
	}

	public void setTitleEditedByUser(boolean titleEditedByUser) {
		this.titleEditedByUser = titleEditedByUser;
	}

	public Point2D getLegendPt() {
		return legendPt;
	}
	
	public void setLegendPt(Point2D legendPt) {
		this.legendPt = legendPt;
	}	
	
	public String getLegendText() {
		return legendText;
	}

	public void setLegendText(String legendText) {
		this.legendText = legendText;
	}	

	public List<String> getColorPatternLegend() {
		return colorPatternLegend;
	}

	public void setColorPatternLegend(List<String> colorPatternLegend) {
		this.colorPatternLegend = colorPatternLegend;
	}		

	public boolean isColorPatternRoundRangesBoundaries() {
		return colorPatternRoundRangesBoundaries;
	}

	public void setColorPatternRoundRangesBoundaries(
			boolean colorPatternRoundRangesBoundaries) {
		this.colorPatternRoundRangesBoundaries = colorPatternRoundRangesBoundaries;
	}	

	public boolean isProportionalSymbolsRoundValues() {
		return proportionalSymbolsRoundValues;
	}

	public void setProportionalSymbolsRoundValues(
			boolean proportionalSymbolsRoundValues) {
		this.proportionalSymbolsRoundValues = proportionalSymbolsRoundValues;
	}

	public Point2D getTitlePt() {
		return titlePt;
	}
	
	public void setTitlePt(Point2D titlePt) {
		this.titlePt = titlePt;
	}

	public boolean isLabelsVisibleIfDataExists() {
		return labelsVisibleIfDataExists;
	}

	public void setLabelsVisibleIfDataExists(boolean visibleIfDataExists) {
		this.labelsVisibleIfDataExists = visibleIfDataExists;
	}		

	public List<MapShape> getGraphics() {
		return graphics;
	}

	public void setGraphics(List<MapShape> graphics) {
		this.graphics = graphics;
	}

	public Color getBackgroundColor() {
		return backgroundColor;
	}

	public void setBackgroundColor(Color backgroundColor) {
		this.backgroundColor = backgroundColor;
	}

	public Color getBaseMapColor() {
		return baseMapColor;
	}

	public void setBaseMapColor(Color baseMapColor) {
		this.baseMapColor = baseMapColor;
	}

	public Color getLabelsColor() {
		return labelsColor;
	}

	public void setLabelsColor(Color labelsColor) {
		this.labelsColor = labelsColor;
	}	

	public String getLabelColumnName() {
		return labelColumnName;
	}

	public void setLabelColumnName(String labelColumnName) {
		this.labelColumnName = labelColumnName;
	}

	public Color getLegendColor() {
		return legendColor;
	}

	public void setLegendColor(Color legendColor) {
		this.legendColor = legendColor;
	}

	public Color getTitleColor() {
		return titleColor;
	}

	public void setTitleColor(Color titleColor) {
		this.titleColor = titleColor;
	}

	public double getBaseMapLineWidth() {
		return baseMapLineWidth;
	}

	public void setBaseMapLineWidth(double baseMapLineWidth) {
		this.baseMapLineWidth = baseMapLineWidth;
	}		
		
}
